import pandas as pd  
import numpy as np  
import os 

# 示例数据  
current_path = os.getcwd()
    
if __name__ == '__main__':                                  #要要求他们把输入的数据改成xlsx
    original_path = current_path + "\\取张总副石金额.xlsx"
    df = pd.read_excel(original_path,engine='openpyxl') 



  
# 计算每个货单编号的 
    total_per_code = df.groupby('货单编号')['金额'].sum().reset_index(name='总金额')  
  

    total_salary_df = total_per_code.copy()  
    total_salary_df['类型'] = '总金额'  
  
# 将新行追加到原始DataFrame的末尾  
    df = pd.concat([df, total_salary_df], ignore_index=True)  
  
# 删除类型为None的行  
    df = df[df['类型'] != np.nan]  
  
# 如果'类型'列原本就有None值而不是NaN，确保先将None转换为NaN  

    df = df[df['类型'].notnull()]  
  
# 现在df中只包含类型为'总工资'的行和原始数据行（如果它们有类型列的话）  
# 如果原始数据行没有'类型'列，则上述步骤不会影响它们  
  
# 根据'货单编号'和'类型'对DataFrame进行排序，并确保总工资行在最后  
    df = df.sort_values(by=['货单编号', '类型'], ascending=[True, False])  
  
# 重置索引，使其从0开始连续  
    df = df.reset_index(drop=True)  
    output = df.drop_duplicates(subset='货单编号')
    output = output.iloc[:, [0, 5]]
    output = output.rename(columns={df.columns[5]: '金额'}) 
    output.to_excel('取张总副石金额.xlsx', index=False) 
  